home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
PASCAL
/
1463.ZIP
/
DRAW-2D.ARC
/
SELAREA.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1986-12-03
|
4KB
|
106 lines
PROCEDURE SELAREA(VAR KODE:INTEGER);
VAR
X4,Y4:REAL;
T,XS,XB,YS,YB:REAL;
FLAG:BOOLEAN;
K:INTEGER;
BEGIN
KODE := 1;
MOVCUR(24,2);
WRITE('Select Corner of Area & press Left button >');
RING(1);
FLAG := FALSE;
WHILE NOT(FLAG) DO
BEGIN
GETMOUSE(X,Y,PIXX,PIXY,OPTION);
IF BUTTON1 THEN FLAG := TRUE;
IF (BUTTON1) AND (OPTION <> 0) THEN
BEGIN
FLAG := FALSE;
RING2;
MOVCUR(24,1);
WRITE(BLKLINE);
MOVCUR(24,2);
WRITE('Move mouse cursor into graphics area!!');
END;
IF BUTTON2 THEN RING2;
END;
M1 := 2;
MOUSE(M1,M2,M3,M4); (* HIDE MOUSE *)
MARK(PIXX,PIXY,HRCOLOR);
M1 := 1; (* SHOW MOUSE *)
MOUSE(M1,M2,M3,M4);
XS := X;
YS := Y;
MOVCUR(24,1);
WRITE(BLKLINE);
MOVCUR(24,2);
WRITE('Select 2nd Corner & press Left button (Right button to Cancel) >');
RING(1);
FLAG := FALSE;
WHILE NOT(FLAG) DO
BEGIN
GETMOUSE(X,Y,PIXX,PIXY,OPTION);
IF (BUTTON1) OR (BUTTON2) THEN FLAG := TRUE;
IF (BUTTON1) AND (OPTION <> 0) THEN
BEGIN
FLAG := FALSE;
RING2;
MOVCUR(24,1);
WRITE(BLKLINE);
MOVCUR(24,2);
WRITE('Move mouse cursor into graphics area!!');
END;
END;
MOVCUR(24,1);
WRITE(BLKLINE);
IF BUTTON1 THEN
BEGIN
XB := X;
YB := Y;
IF XS > XB THEN
BEGIN
T := XS;
XS := XB;
XB := T;
END;
IF YS > YB THEN
BEGIN
T := YS;
YS := YB;
YB := T;
END;
FOR K := 1 TO OBJPTR-1 DO
WITH DRAWARY[K] DO
BEGIN
OBJSEL := 0;
CASE OBJTYP OF
0: BEGIN END; (* DEL. OBJ. *)
1: IF (X1 >= XS) AND (X1 <= XB) AND (Y1 >= YS) AND (Y1 <= YB) THEN
OBJSEL := 1; (* POINT *)
2: BEGIN (* LINE *)
IF (X1 >= XS) AND (X1 <= XB) AND (Y1 >= YS) AND (Y1 <= YB) THEN
OBJSEL := 1;
IF (X2 >= XS) AND (X2 <= XB) AND (Y2 >= YS) AND (Y2 <= YB) THEN
OBJSEL := 1;
END;
3: BEGIN (* BOX *)
X4 := X3 - X2 + X1;
Y4 := Y3 - Y2 + Y1;
IF (X1 >= XS) AND (X1 <= XB) AND (Y1 >= YS) AND (Y1 <= YB) THEN
OBJSEL := 1;
IF (X2 >= XS) AND (X2 <= XB) AND (Y2 >= YS) AND (Y2 <= YB) THEN
OBJSEL := 1;
IF (X3 >= XS) AND (X3 <= XB) AND (Y3 >= YS) AND (Y3 <= YB) THEN
OBJSEL := 1;
IF (X4 >= XS) AND (X4 <= XB) AND (Y4 >= YS) AND (Y4 <= YB) THEN
OBJSEL := 1;
END;
4: IF (X1 >= XS) AND (X1 <= XB) AND (Y1 >= YS) AND (Y1 <= YB) THEN
OBJSEL := 1; (* CIRCLE *)
END; (* CASE *)
IF OBJSEL = 1 THEN KODE := 0;
END; (*WITH*)
END;
END; (*PROC*)